//入口函数
$(function () {
    //去登陆/注册 绑定点击事件
    //当去注册被点击的时候，隐藏登陆界面，显示注册页面
    $('#link_red').on('click', function () {
        $('.login-box').hide();
        $('.reg-box').show();
    })
    //当去登陆被点击的时候，隐藏注册界面，显示登陆页面
    $('#link_login').on('click', function () {
        $('.login-box').show();
        $('.reg-box').hide();
    })

    //为表单添加自定义规则
    layui.form.verify({
        //密码长度规则
        pwd: [
            /^[\S]{6,12}$/
            , '密码必须6到12位，且不能出现空格'
        ],
        //密码确认规则
        repwd: function (value) {
            //获取密码框里的内容
            let pwdValue = $('.reg-box [name=password]').val().trim()
            //判断两个密码是否相等
            if (pwdValue !== value) {
                //如果两次密码不相等，则返回错误信息
                return '两次密码不一致，请重新输入'
            }
        }
    })

    //构造函数：信息提交服务器
    function submitMsg(requestURL, tagIdName) {
        //设置参数
        $.ajax({
            url: requestURL,
            method: 'POST',
            data: {

                username: $('#' + tagIdName + ' input[name=username]').val().trim(),
                password: $('#' + tagIdName + ' input[name=password]').val().trim(),
            },
            success: (res) => {
                //判断是否成功登陆
                if (res.status == 1) {
                    return layer.msg(res.message, {
                        icon: 2,
                        time: 1000
                    });
                }
                layer.msg('登陆成功，马上跳转到登陆界面~', {
                    icon: 1,
                    time: 1000   //一秒后关闭
                }, () => {
                    if (tagIdName == 'form_login') {
                        LoginForm(res)
                    } else if (tagIdName == 'form_reg') {
                        resForm()
                    }
                });
            }
        })
    }
    //回调函数：登陆表单触发
    function LoginForm(res) {
        //将服务器返回的token值保存到本地
        localStorage.setItem('token', res.token)
        //跳转到首页
        window.location.href = './index.html'
    }
    //回调函数：注册表单触发
    function resForm() {
        //触发登陆点击事件
        $('#link_login').trigger('click');
        //为了拿到表单提交事件的this，用于清空表单，这里运用了没有this的箭头函数
        document.querySelector('#form_reg').reset();
    }
    //为登陆表单注册事件
    $('#form_login').on('submit', function (e) {
        //阻止默认提交行为
        e.preventDefault();
        submitMsg('/api/login', 'form_login')
    });
    //为注册表单注册事件
    $('#form_reg').on('submit', function (e) {
        //阻止默认提交行为
        e.preventDefault();
        submitMsg('/api/reguser', 'form_reg')
    })
})